package com.jeesite.modules.dataScreen.web.dto;
import cn.hutool.core.date.DatePattern;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeesite.modules.dataScreen.entity.EventExtendedField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author machenzhi
 * @date 2024/08/08 09:50
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="事件上报dto", description="事件上报dto")
public class EventOrderDTO {

    @ApiModelProperty("应用识别码   轨道大客流智处:sys_code_gddkl:地铁内涝处置:sys_code_dtnl:航道运行应急响应:sys_code_hdyx:码头大客流处置:sys_code_mtdkl:危货运输车辆超速报警核警处置:sys_code_whysclcs:道路危货运输\"五必查\":sys_code_dlwhyswbc:货车超限违法行为处置:sys_code_hccxwf:公路阻断事件处置:sys_code_glzd:高速公路救援:sys_code_gsgljy:火车站大客流出租汽车应急疏运:sys_code_hczdkl:公交客服热线处置:sys_code_gjkfrx")
    @NotNull(message = "请传入应用识别码")
    private String sourceSystemCode;

    @ApiModelProperty("事件单ID")
    @NotNull(message = "请传入事件单ID")
    private String eventNum;

    @ApiModelProperty("事件单标题")
    private String eventTitle;

    @ApiModelProperty("事发时间")
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN, timezone = "GMT+8")
    private Date happenTime;

    @ApiModelProperty("事发内容")
    private String eventContent;

    @ApiModelProperty("事件单类型")
    private String eventType;

    @ApiModelProperty("事件单等级")
    private String eventLevel;

    @ApiModelProperty("创建人")
    private String createBy;

    @ApiModelProperty("创建部门")
    private String createDept;

    @ApiModelProperty("办理期限")
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN, timezone = "GMT+8")
    private Date limitDate;

    @ApiModelProperty("事发地址")
    private String eventAddress;

    @ApiModelProperty("诉求人")
    private String appealName;

    @ApiModelProperty("诉求人电话")
    private String appealTel;

    @ApiModelProperty("诉求提出时间")
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN, timezone = "GMT+8")
    private Date appealTime;

    @ApiModelProperty("事件单备注")
    private String remark;

    @ApiModelProperty("所属市州")
    private String belongCity;

    @ApiModelProperty("所属区县")
    private String belongCounty;

    @ApiModelProperty("所属街道")
    private String belongStreet;

    @ApiModelProperty("所属社区")
    private String belongCommunity;

    @ApiModelProperty("所属网格")
    private String belongGrid;

    @ApiModelProperty("经度(84坐标)")
    private String lon;

    @ApiModelProperty("纬度(84坐标)")
    private String lat;

    @ApiModelProperty("经度(2000坐标)")
    private String lon2000;

    @ApiModelProperty("纬度(2000坐标)")
    private String lat2000;

    @ApiModelProperty("涉及人数")
    private Integer peopleNumber;

    @ApiModelProperty("死亡人数")
    private Integer deathNumber;

    @ApiModelProperty("受伤人数")
    private Integer injuredNumber;

    @ApiModelProperty("经济损失")
    private BigDecimal economicLoss;

    @ApiModelProperty("其他关联地址")
    private String linkAddress;

    @ApiModelProperty("办理要求")
    private String dealContent;

    @ApiModelProperty("事件单信息扩展字段信息")
    private List<EventExtendedField> eventExtendedFieldList;
}


